/**
 * 文件名：@ProcessTimeFilter.java <br/>
 * 包名：cn.efunbox.afw.web.filter <br/>
 * 项目名：afw-web <br/>
 * @author xtwin <br/>
 */
package cn.efunbox.afw.web.filter;

import java.io.IOException;

import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;

/**
 * 类名：ProcessTimeFilter  <br />
 *
 * 功能：用于记录处理时间的过滤器
 *
 * @author xtwin <br />
 * 创建时间：2015年12月8日 下午4:29:33  <br />
 * @version 2015年12月8日
 */
public class ProcessTimeFilter extends FilterAdapter {
	
	// 日志记录器
	private static final Log logger = LogFactory.getLog(ProcessTimeFilter.class);

	/**
	 * 功能: <br/>
	 * 
	 * 重写：xtwin <br/>
	 * 
	 * @version ：2015年12月8日 下午4:30:02<br/>
	 * 
	 * @param request
	 * @param response
	 * @param chain
	 * @throws IOException
	 * @throws ServletException <br/>
	 * @see javax.servlet.Filter#doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)
	 */
	@Override
	public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
		
		long start = 0;
		
		if (logger.isDebugEnabled()) {
			start = System.currentTimeMillis();
			
			logger.debug("start...");
		}
		
		chain.doFilter(request, response);
		
		if (logger.isDebugEnabled()) {
			logger.debug("use time is : " + (System.currentTimeMillis() - start));
		}
	}
}